
import { Boot } from "@wangeditor/editor"
/*** 自定义扩展菜单工具栏功能 */
import PreviewPage from "./PreviewPage";
import MaterialImage from "./MaterialImage";
import MaterialVideo from "./MaterialVideo";
import AudioMenu from './AudioMenu'

import MyModalMenu from './MyModalMenu'
import MySelectMenu from "./MySelectMenu";
const MenusList = [
  {
    key: 'PreviewPage',
    class: PreviewPage,
    title: '预览',
    iseparate: false,//是否单独一行
    index: 24 // 菜单要在工具栏显示的位置
  },
  {
    key: 'MaterialImage',
    class: MaterialImage,
    title: '上传图片素材',
    iseparate: false,//是否单独一行
    index: 23 // 菜单要在工具栏显示的位置
  },
  {
    key: 'MaterialVideo',
    class: MaterialVideo,
    title: '上传视频素材',
    iseparate: false,//是否单独一行
    index: 23 // 菜单要在工具栏显示的位置
  },
  {
    key: 'AudioMenu',
    class: AudioMenu,
    title: '上传音频',
    iseparate: false,//是否单独一行
    index: 26
  },
  {
    key: 'MySelectMenu',
    class: MySelectMenu,
    title: '下拉框选择',
    iseparate: false,//是否单独一行
    index: 25
  },
  {
    key: 'MyModalMenu',
    class: MyModalMenu,
    title: '弹出框菜单',
    iseparate: false,//是否单独一行
    index: 25 // 菜单要在工具栏显示的位置
  }
]
/**
 * 自定义扩展菜单工具栏
 * @param {*} editor 编辑器
 * @param {*} toolbarConfig  工具栏
 */
const registerMenu = function (editor, toolbarConfig) {
  const allRegisterMenu = editor.getAllMenuKeys(); // 获取所有已注册的菜单
  let keys = [];
  for (let item of MenusList) {
    if (allRegisterMenu.indexOf(item.key) < 0) { // 1.如果未注册，则注册
      const menuObj = {
        key: item.key,
        factory() {
          return new item.class()
        }
      }
      Boot.registerMenu(menuObj);
    }
    if (item.iseparate) {
      //如果是单行的则注册在toolbar
      keys.push(item.key)
    }

  }
  //2. 插入菜单到工具栏
  toolbarConfig.insertKeys = {
    index: MenusList[0].index,
    keys: keys
  }
}

export default registerMenu